package com.sailfish.springbootdemo.service.db1;

import com.sailfish.springbootdemo.pojo.Result;
import com.sailfish.springbootdemo.pojo.db1.PcbaDeviceParam;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface PcbaDeviceParamService {

    /**
     * 查询所有
     *
     * @return
     */
    List<PcbaDeviceParam> getAllPcbaDeviceParam(HttpServletRequest request, Integer pcbaDeviceTypeId, Integer pcbaDeviceParamTypeId, String searchPcbaDeviceParamName);

    /**
     * 解析上传的参数文件
     *
     * @param file
     * @return
     */
    Result analysisPcbaDeviceParamExcel(MultipartFile file);

    /**
     * 删除
     *
     * @param pcbaDeviceParamId
     * @return
     */
    Result deleteById(Integer pcbaDeviceParamId);

    /**
     * 新增
     *
     * @param pcbaDeviceParam
     * @return
     */
    Boolean addPcbaDeviceParam(PcbaDeviceParam pcbaDeviceParam);

    /**
     * 更新
     *
     * @param pcbaDeviceParam
     * @return
     */
    Boolean updatePcbaDeviceParam(PcbaDeviceParam pcbaDeviceParam);

    /**
     * 新增或者更新
     *
     * @param pcbaDeviceParam
     * @param mode
     * @return
     */
    Result addOrUpdatePcbaDeviceParam(PcbaDeviceParam pcbaDeviceParam, String mode);

    /**
     * 导出数据excel
     *
     * @return
     */
    Result exportPcbaDeviceParamExcel();

    /**
     * 根据设备类型导出模板
     *
     * @return
     */
    Result exportPcbaDeviceParamExcelByDeviceType(Integer pcbaDeviceTypeId);

    /**
     * 根据设备类型导入模板
     *
     * @return
     */
    Result importPcbaDeviceParamExcelByDeviceType(Integer pcbaDeviceTypeId, MultipartFile file);

    /**
     * 根据key查询
     *
     * @param pcbaDeviceParamKey
     * @return
     */
    Result getPcbaDeviceParamByKey(String pcbaDeviceParamKey);
}
